package main

import (
	"fmt"
	"time"
)

// 定时器
func tickDemo() {
	tick := time.Tick(time.Second) // 每一秒钟的定时器

	for i := range tick {
		// 使用for循环 开始定时任务
		fmt.Println(i)
	}
}

func calTime() {
	start := time.Now()
	time.Sleep(time.Millisecond * 30)
	fmt.Println(time.Since(start))
}

func main() {
	// time.Time{}  // 时间类型
	now := time.Now()
	fmt.Printf("%#v\n", now) // time.Time类型

	fmt.Println(now.Year())   // 年
	fmt.Println(now.Month())  // 月
	fmt.Println(now.Day())    // 日
	fmt.Println(now.Hour())   // 时
	fmt.Println(now.Minute()) // 分
	fmt.Println(now.Second()) // 秒

	// 时间戳
	fmt.Println(now.Unix())     // 1574916481 秒级别
	fmt.Println(now.UnixNano()) // 1574916481955706000 纳秒级别

	// 时间戳转换成时间格式
	timeObj := time.Unix(now.Unix(), 0)
	fmt.Println(timeObj)        // 2019-11-28 12:48:01 +0800 CST
	fmt.Println(timeObj.Year()) // 2019

	// 定时器
	//tickDemo()

	// 时间差
	calTime()

	// 时间格式化
	// go语言中使用
	// 年   月  日  时 分 秒 毫秒
	// 2006-01-02 15:04:05:000
	fmt.Println(now.Format("2006-01-02 15:04:05.000")) // 2019-11-28 12:59
	fmt.Println(now.Format("2006/01/02 15:04"))        // 2019/11/28 12:59
	fmt.Println(now.Format("15:04 2006-01-02"))        // 12:59 2019-11-28
	fmt.Println(now.Format("2006/01/02"))              // 2019/11/28
}
